package main

import (
	"fmt"
	"reflect"
)

func main() {
	s := &Student{Id: 1, Name: "咖啡色的羊驼"}
	v := reflect.ValueOf(s)

	//修改值必须是指针，否则不行
	if v.Kind() != reflect.Ptr {
		fmt.Println("不是指针类型，没法进行修改操作")
		return
	}

	//获取指针指向的元素
	v = v.Elem()
	name := v.FieldByName("Name")
	if name.Kind() == reflect.String {
		name.SetString("小学生")
	}
	fmt.Printf("%#v \n", *s)

	//如果是整型的话
	test := 888
	testV := reflect.ValueOf(&test)
	//testV.Elem().Set(reflect.ValueOf(666))
	testV.Elem().SetInt(666)
	fmt.Println(test)
}
